Computer and communication technologies often rely on properly functioning software applications, but the rapid advancement of computer and communication technologies in modern times has also resulted in increasingly complex software applications. In order to ensure proper functioning of the software applications, and the underlying computer and communication technologies, comprehensive testing of software applications under development and the supporting technical platforms has become necessary. Model based testing and automated testing methodologies have been developed to assist in the software application testing process. However, such methodologies have achieved limited success due to their inability to adapt to changes that take place between the design (e.g., prototype) and implementation phases (e.g., production) of application development.